#ifndef __MOTOR_CONTROLLER_H
#define __MOTOR_CONTROLLER_H

#include "stm32f0xx.h"
#include "function.h" 

#define MOTOR_CONTROLLER_PERIOD  10     //电机控制周期   单位:ms
#define MOTORCONTROLLER_ACC      6000   //加速度         单位:n/min/s

#define MOTORCONTROLLER_KP 20.0f        //PID控制器比例系数
#define MOTORCONTROLLER_KI 12.0f        //PID控制器积分系数
#define MOTORCONTROLLER_KD 0.1f        //PID控制器微分系数

//  增量式PID  0.1 0.04 0.01

typedef struct{
    
    int16_t curSpeed;       //当前转速
    int16_t setSpeed;       //设定速度
    int16_t expSpeed;       //期望速度

    int16_t accelerate;     //加速度

    POSPIDController PID;
    
}MotorController;

void MotorController_Init(void);
void SetMotorSpeed(uint8_t nMotor, int16_t nSpeed);
uint8_t MotorControlTask(uint8_t info);

#endif
